/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Model;

import Controller.Functionary_controller;
import java.sql.SQLException;
import javax.swing.JComboBox;
/**
 *
 * @author Molina
 */
public class Functionary_model {
    
static Connect conexClient = new Connect();

    public static boolean modificarFuncionario(Functionary_controller x) {
        boolean r = true;
        try {
           
            conexClient.setQuery("UPDATE Funcionarios SET fun_tipodocumento='" + x.getTipdocument_funcionario()
                    + "', fun_documento ='" + x.getDocument_funcionario()
                    + "', fun_nombre='" + x.getNombre_funcionario()
                    + "', fun_apellido='" + x.getApellido_funcionario()
                    + "', fun_cargo='" + x.getCargo_funcionario()
                    + "', fun_telefono='" + x.getTelefono_funcionario()
                    + "', fun_email='" + x.getEmail_funcionario()
                    + "', fun_extension='" + x.getExtension_funcionario()
                    + "', fun_estado='" + x.getEstado_funcionario()
                    + "' where  fun_numero='" + x.getId_funcionario() + "'");
            conexClient.Modificar();
            conexClient.hacerCommit();
        } catch (Exception e) {
            e.printStackTrace();
            r = false;
        }
        return r;
    }

    public static Functionary_controller buscarFuncionario(String x) {
        Functionary_controller r = null;

        conexClient.setQuery("SELECT * FROM Funcionarios WHERE fun_numero ='" + x + "'");
        try {
            conexClient.conectar();
            conexClient.Consultar();
            if (conexClient.siguiente()) {
                r = traerFuncionarios();
            } else {
                r = null;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return r;
    }

    public static Functionary_controller traerFuncionarios() {
        Functionary_controller r = null;
        String id_funcionario;
        String tipcodument_funcionario;
        String document_funcionario;
        String nombre_funcionario;
        String apellido_funcionario;
        String cargo_funcionario;
        String telefono_funcionario;
        String email_funcionario;
        String extension_funcionario;
        String estado_funcionario;
        try {
            id_funcionario = conexClient.getResultado().getString("fun_numero");
            tipcodument_funcionario = conexClient.getResultado().getString("fun_tipodocumento");
            document_funcionario = conexClient.getResultado().getString("fun_documento");
            nombre_funcionario = conexClient.getResultado().getString("fun_nombre");
            apellido_funcionario = conexClient.getResultado().getString("fun_apellido");
            cargo_funcionario = conexClient.getResultado().getString("fun_cargo");
            telefono_funcionario = conexClient.getResultado().getString("fun_telefono");
            email_funcionario = conexClient.getResultado().getString("fun_email");
            extension_funcionario = conexClient.getResultado().getString("fun_extension");
            estado_funcionario = conexClient.getResultado().getString("fun_estado");

            r = new Functionary_controller(id_funcionario, tipcodument_funcionario, document_funcionario, nombre_funcionario,
                     apellido_funcionario, cargo_funcionario, telefono_funcionario, email_funcionario, extension_funcionario, estado_funcionario);
            return r;
        } catch (Exception e) {
            r = null;
            System.out.println("Error al Ejecutar la Consulta De Todos Los Registros " + e.getMessage());
        }
        return r;
    }

    public static boolean adicionarFuncionario(Functionary_controller x) {
        boolean r = true;
        try {
            conexClient.setQuery("INSERT INTO Funcionarios VALUES (NULL,'" + x.getTipdocument_funcionario() + "','" + x.getDocument_funcionario() + "','"
                    + x.getNombre_funcionario() + "','" + x.getApellido_funcionario() + "','" + x.getCargo_funcionario() + "','"
                    + x.getTelefono_funcionario() + "','" + x.getEmail_funcionario() + "','" + x.getExtension_funcionario() + "','" + x.getEstado_funcionario() + "')");

            conexClient.Guardar();
            conexClient.hacerCommit();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return r;
    }
    
    public static void cargarFuncionarios(JComboBox com) {
        try {
            
            conexClient.conectar();
            conexClient.setQuery("SELECT fun_numero as cod, CONCAT(fun_nombre,' ',fun_apellido) as nombre FROM Funcionarios");
            conexClient.Consultar();
            while (conexClient.getResultado().next()) {
                //com.addItem(conexClient.getResultado().getString("nombre"));
                com.addItem(conexClient.getResultado().getString("cod")+ "-" +conexClient.getResultado().getString("nombre"));
            }
        } catch (SQLException ex) {
            ex.printStackTrace();
        } finally {
            conexClient.cerrarResultado();
            conexClient.cerrarStatement();
            conexClient.cerrarConexion();
        }
    }
}
